package cn.fl.project.prjfile.service;

import java.util.List;
import java.util.Map;

import cmm.mid.core.framework.dto.DataResultDTO;
import cmm.mid.core.framework.page.Pager;
import cn.cmm.base.framework.exception.BaseException;
import cn.fl.capital.vo.CapPayMaterialVo;
import cn.fl.prjfile.condition.PrjFilesRecQueryCondition;
import cn.fl.project.prjfile.vo.PrjFilesRecVO;

/**
 * 上传下载API
 * 
 * @author FUJINGRUN
 */
public interface IPrjFilesRecService {

	// **************************文件上传记录*********************//
	/**
	 * 分页查询
	 * @param page
	 * @return
	 * @throws BaseException
	 */
	public Pager searchListPage(Pager page) throws BaseException;
	
	/**
	 * 新增
	 * @param vo
	 * @return
	 * @throws BaseException
	 */
	public Long add(PrjFilesRecVO vo) throws BaseException;
	
	public List<PrjFilesRecVO> searchList(PrjFilesRecQueryCondition condition) throws BaseException;

	/**
	 * 根据id查询唯一记录
	 * @param id
	 * @return
	 * @throws BaseException
	 */
	public PrjFilesRecVO selectById(Long id) throws BaseException;
	
	/**
	 * 修改
	 * @param vo
	 * @return
	 * @throws BaseException
	 */
	public boolean update(PrjFilesRecVO vo) throws BaseException;
	
	/**
	 * 逻辑删除
	 * @param id
	 * @return
	 * @throws BaseException
	 */
	public boolean removeById(Long id) throws BaseException;
	/**
     * 删除
     * @param ids
     * @return boolean
     */
    public boolean removePrjFilesRecByIds(List<Long> ids) throws BaseException;
    
    /**
     * 新增集合
     */
    public Boolean addList(List<PrjFilesRecVO> list) throws BaseException;
    /**
     * 根据条件删除上传文件记录
     * @param qc
     * @throws BaseException
     */
	public boolean removePrjFilesRecByCondition(PrjFilesRecQueryCondition qc)throws BaseException;
	
	
	/**
	 * 更新验证状态
	 */
	public boolean modifyAudStsCd(PrjFilesRecQueryCondition condition ) throws BaseException;
	
	/**
	 * 根据主键修改审核状态
	 * @param id 主键
	 * @param audStsCd 审核状态
	 * @return
	 */
	public boolean modifyAudStsCdById(Long id, String audStsCd)throws BaseException;
	
	/**
	 * 根据主键修改审核状态
	 * @param idList 主键集合
	 * @param audStsCd 审核状态
	 * @return
	 */
	public boolean modifyAudStsCdByIdList(List<Long> idList, String audStsCd)throws BaseException;
	
	
	/**
	 * 根据主键修改是否删除状态
	 * @param id 主键
	 * @param audStsCd 审核状态
	 * @return
	 */
	public boolean modifyIsDelCdById(Long id, String isDel)throws BaseException;
	/**
	 *  初始化上传资料列表
	 */
	public List<CapPayMaterialVo> searchMateList(PrjFilesRecQueryCondition qc) throws BaseException;
	/**
	 * 发起流程
	 * @param map
	 * @return
	 * @throws BaseException
	 */
	public DataResultDTO addFlowStart(Map map) throws BaseException;
}
